home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / SASETUP.MSI / F24139_changelang.asp < prev    next >
Encoding:
Text File  |  2003-02-21  |  12.8 KB  |  367 lines

  1. <%@ Language=VBScript       %>
  2. <%    Option Explicit            %>
  3. <%
  4.     '-------------------------------------------------------------------------
  5.     ' changelang.asp: property page to set language 
  6.     '
  7.     ' Copyright (c) Microsoft Corporation.  All rights reserved.
  8.     '
  9.     ' Date            Description
  10.     ' 15-Jan-2001    Moved to new framework
  11.     '-------------------------------------------------------------------------
  12. %>
  13.     <!-- #include virtual="/admin/inc_framework.asp" -->
  14. <%
  15.     '
  16.     ' Name of this source file
  17.     Const SOURCE_FILE = "ChangeLang.asp"
  18.     '
  19.     ' Flag to toggle optional tracing output
  20.     Const ENABLE_TRACING = TRUE
  21.  
  22.     Const ID_LANG_CHANGE_INPROGRESS     = "40010006"
  23.     Const ID_LANG_CHANGE_INPROGRESS_DSCP= "40010007"
  24.  
  25.     Dim page
  26.     Dim rc
  27.  
  28.     Dim strSelectedLangID        'Contains the Language ID (LANGID) of the selected language.
  29.     Dim strOldLangID
  30.  
  31.     '================================================================
  32.     'Start of localization Content
  33.     '================================================================
  34.     Dim L_TASKTITLE_TEXT
  35.     Dim L_SELECTLANGUAGE_LEFT_TEXT 
  36.     Dim L_LANG_SET_FAILED_ERRORMESSAGE
  37.         
  38.     '================================================================
  39.     'Values are hardcoded instead Fetching from Resource.dll
  40.     '================================================================
  41.     
  42.     L_TASKTITLE_TEXT                =GetLocString("changelangmsg.dll","&H40010003", varReplacementStrings)    
  43.     L_SELECTLANGUAGE_LEFT_TEXT      =GetLocString("changelangmsg.dll","&H40010004", varReplacementStrings)
  44.     L_LANG_SET_FAILED_ERRORMESSAGE  =GetLocString("changelangmsg.dll","&H40010005", varReplacementStrings)
  45.     
  46.     Call SA_CreatePage( L_TASKTITLE_TEXT, "", PT_PROPERTY, page )
  47.     Call SA_ShowPage( page )
  48.  
  49.     '---------------------------------------------------------------------
  50.     ' Function name:    OnInitPage
  51.     ' Description:        Called to signal first time processing for this page. 
  52.     ' Input Variables:    PageIn and EventArg
  53.     ' Output Variables:    None
  54.     ' Return Values:    TRUE to indicate initialization was successful. FALSE to indicate
  55.     '                    errors. Returning FALSE will cause the page to be abandoned.
  56.     ' Global Variables: None
  57.     ' Called to signal first time processing for this page. Use this method
  58.     ' to do first time initialization tasks. 
  59.     '---------------------------------------------------------------------
  60.     Public Function OnInitPage(ByRef PageIn, ByRef EventArg)
  61.         
  62.         If ( ENABLE_TRACING ) Then 
  63.             Call SA_TraceOut(SOURCE_FILE, "OnInitPage")
  64.         End If
  65.  
  66.         OnInitPage = TRUE
  67.             
  68.     End Function
  69.  
  70.  
  71.     Public Function OnServePropertyPage(ByRef PageIn, ByRef EventArg)
  72.  
  73.         If ( ENABLE_TRACING ) Then 
  74.                 Call SA_TraceOut(SOURCE_FILE, "OnServePropertyPage")
  75.         End If
  76.         
  77.         Err.Clear
  78.         on Error Resume Next
  79.         
  80.         Dim ICurLang            'Contains the Currently set serverappliance language
  81.         Dim obj                    'Used as object variable
  82.         Dim arrLangDisplayImages    'Contains array of language name images supported by serverappliance
  83.         Dim arrLangISONames        'Contains ISO names for Server Appliance supported Languages
  84.         Dim arrLangCharSets     'Contains char set names for Server Appliance supported Languages
  85.         Dim arrLangCodePages    'Contains code page ids for Server Appliance supported Languages
  86.         Dim arrLangIDs            'Contains language IDs for Server Appliance supported Languages
  87.         Dim i,k,intColoumns,intTotalNumberofLanguages
  88.         Dim strLangID
  89.         Dim strLangGIF
  90.         Dim sChecked
  91.             
  92.         'Setting for no of coloumns for display purpose
  93.         intColoumns=3
  94.     
  95.         set obj = CreateObject("ServerAppliance.LocalizationManager")
  96.         ICurLang = obj.GetLanguages(arrLangDisplayImages,  arrLangISONames, arrLangCharSets, arrLangCodePages, arrLangIDs)
  97.         intTotalNumberofLanguages = Ubound(arrLangDisplayImages)
  98.     
  99.         strSelectedLangID = Hex(arrLangIDs(iCurLang))
  100.         strOldLangID = strSelectedLangID
  101.     
  102.         Call ServeCommonJavaScript()    
  103.     %>    
  104.         
  105.         <TABLE  BORDER=0 CELLSPACING=0 CELLPADDING=0 xclass="TasksBody">
  106.         <TR>
  107.         <TD Nowrap colspan=6 class="TasksBody"><% =L_SELECTLANGUAGE_LEFT_TEXT %></TD>
  108.         </TR>
  109.         
  110.     <%
  111.         For i=0 to intTotalNumberofLanguages
  112.  
  113.             ' work with images or text
  114.             If InStr(arrLangDisplayImages(i), ".gif") Then
  115.                 strLangGIF = arrLangDisplayImages(i)
  116.  
  117.                 'This is because Loc Manager doesn't pay attention to the registry value
  118.                 If ("images/english.gif" = strLangGIF) Then
  119.                     strLangGif = ""
  120.                     arrLangDisplayImages(i) = "English"
  121.                 End If
  122.             Else
  123.                 strLangGIF = ""
  124.             End If
  125.  
  126.             strLangID = Hex(arrLangIDs(i))
  127.             If ( strLangID = strSelectedLangID )  Then
  128.                 sChecked = "CHECKED"
  129.             Else
  130.                 sChecked = ""
  131.             End If
  132.  
  133.             If intTotalNumberofLanguages <= 6 Then
  134.                 Response.Write "<TR>"
  135.                     
  136.                 Response.Write "<TD class='TasksBody'>"
  137.                 If (Trim(Len(strLangGIF)) > 0) Then
  138.                     Response.Write "<INPUT TYPE=Radio " & sChecked & " NAME='curlang'" & " value=" & "'" & strLangID & "'" & "></td>" & "<td class='TasksBody' width='100%'><IMG border=0 src='" &strLangGIF& "'>"
  139.                 Else
  140.                     Response.Write "<INPUT TYPE=Radio " & sChecked & " NAME='curlang'" & " value=" & "'" & strLangID & "'" & "></td>" & "<td class='TasksBody' width='100%'>" & Server.HTMLEncode(arrLangDisplayImages(i))
  141.                 End If
  142.                 Response.Write "</TD>"
  143.                 Response.Write "</TR>"+vbCrLf
  144.             Else
  145.                 If (k mod intColoumns =0 ) Then
  146.                     Response.Write "<TR>"
  147.                     k=0
  148.                 End If
  149.                 Response.Write "<TD class='TasksBody'>"
  150.                 If (Trim(Len(strLangGIF)) > 0) Then
  151.                     Response.Write "<INPUT TYPE=Radio " & sChecked & " NAME='curlang'" & " value=" & "'" & strLangID & "'" & "></td>" & "<td class='TasksBody' width='25%'><IMG border=0 src='" &strLangGIF& "'>"
  152.                 Else
  153.                     Response.Write "<INPUT TYPE=Radio " & sChecked & " NAME='curlang'" & " value=" & "'" & strLangID & "'" & "></td>" & "<td class='TasksBody' width='25%'>" & Server.HTMLEncode(arrLangDisplayImages(i))
  154.                 End If
  155.                 Response.Write "</TD>"+vbCrLf
  156.                 If (k =intColoumns-1)Then
  157.                     Response.Write "</TR>"
  158.                 End If
  159.                 k = k+1
  160.             End If                
  161.             
  162.         Next    
  163.     %>                
  164.         </TABLE>
  165.         <INPUT TYPE=HIDDEN NAME="OldLanguageID" VALUE="<%=strOldLangID %>" >
  166.     <%
  167.         OnServePropertyPage = TRUE
  168.     End Function
  169.     
  170.     '-------------------------------------------------------------------------
  171.     'Function:                              OnSubmitPage()
  172.     'Description:                   Called when the page has been submitted for processing.
  173.     '                                               Use this method to process the submit request.
  174.     'Input Variables:               PageIn,EventArg
  175.     'Output Variables:              None
  176.     'Returns:                               True/False
  177.     'Global Variables:              None
  178.     '-------------------------------------------------------------------------
  179.     Public Function OnSubmitPage(ByRef PageIn, ByRef EventArg)
  180.  
  181.     On Error Resume Next
  182.     Err.Clear    
  183.  
  184.     Dim objSAHelper
  185.     Dim bModifiedPrivilege
  186.     Const CONST_SHUTDOWNPRIVILEGE = "SeShutdownPrivilege"
  187.     bModifiedPrivilege = FALSE
  188.  
  189.     'Create SAHelper object
  190.     Set objSAHelper = Server.CreateObject("ServerAppliance.SAHelper")    
  191.     if err.number <> 0 Then
  192.         SA_TraceOut "Create object failed for SAHelper object", err.description
  193.     else
  194.         'enable shutdown privilege
  195.         bModifiedPrivilege = objSAHelper.SAModifyUserPrivilege(CONST_SHUTDOWNPRIVILEGE, TRUE)
  196.         if err.number <> 0 Then
  197.             SA_TraceOut "Enable privilege failed", err.description
  198.             exit function
  199.         end if
  200.     end if
  201.  
  202.     Dim sReturnURL
  203.     Dim sURL
  204.     
  205.         If ( ENABLE_TRACING ) Then 
  206.                 Call SA_TraceOut(SOURCE_FILE, "OnSubmitPage")
  207.         End If
  208.         
  209.         strSelectedLangID = Request.Form("curlang")
  210.         strOldLangID = Request.Form("OldLanguageID")
  211.         
  212.         Call SA_TraceOut(SOURCE_FILE, "Selected Language ID is " & strSelectedLangID )
  213.        
  214.         If (strSelectedLangID = strOldLangID) Then
  215.             OnSubmitPage = TRUE
  216.  
  217.         if ( bModifiedPrivilege ) then
  218.             'revert back to disabled state
  219.             bModifiedPrivilege = objSAHelper.SAModifyUserPrivilege(CONST_SHUTDOWNPRIVILEGE, FALSE)
  220.             if err.number <> 0 Then
  221.                 SA_TraceOut "Disable privilege failed", err.description
  222.                 exit function
  223.             end if
  224.         end if
  225.         set objSAHelper = Nothing
  226.  
  227.             Exit Function
  228.         End If       
  229.         
  230.         If ChangeLanguage() Then
  231.         sReturnURL = Request.Form("ReturnURL")
  232.         sURL = getVirtualDirectory() + "network/RebootSys.asp"
  233.         Call SA_MungeURL( sURL, "ReturnURL", sReturnURL)
  234.         Call SA_MungeURL( sURL, SAI_FLD_PAGEKEY, SAI_GetPageKey())
  235.  
  236.         Response.Redirect(sURL)
  237.  
  238.             OnSubmitPage = TRUE
  239.         Else
  240.             Call SA_ServeFailurePage(L_LANG_SET_FAILED_ERRORMESSAGE)
  241.         End If
  242.         
  243.  
  244.     if ( bModifiedPrivilege ) then
  245.         'revert back to disabled state
  246.         bModifiedPrivilege = objSAHelper.SAModifyUserPrivilege(CONST_SHUTDOWNPRIVILEGE, FALSE)
  247.         if err.number <> 0 Then
  248.             SA_TraceOut "Disable privilege failed", err.description
  249.             exit function
  250.         end if
  251.     end if
  252.     set objSAHelper = Nothing
  253.  
  254.     End Function    
  255.     
  256.     
  257.     '-------------------------------------------------------------------------
  258.     'Function:                              OnClosePage()
  259.     'Description:                   Called when the page is about closed.Use this method
  260.     '                                               to perform clean-up processing
  261.     'Input Variables:               PageIn,EventArg
  262.     'Output Variables:              PageIn,EventArg
  263.     'Returns:                               True/False
  264.     'Global Variables:              None
  265.     '-------------------------------------------------------------------------
  266.     Public Function OnClosePage(ByRef PageIn, ByRef EventArgIn)
  267.             OnClosePage = TRUE
  268.     End Function
  269.  
  270.     Public Function OnPostBackPage(ByRef PageIn, ByRef EventArgIn)
  271.             OnPostBackPage = TRUE
  272.     End Function
  273.     
  274.     '-------------------------------------------------------------------------
  275.     'Function:                              ServeCommonJavaScript
  276.     'Description:                   Serves in initialiging the values,setting the form
  277.     '                                               data and validating the form values
  278.     'Input Variables:               None
  279.     'Output Variables:              None
  280.     'Returns:                               None
  281.     'Global Variables:              L_PASSWORDNOTMATCH_ERRORMESSAGE
  282.     '-------------------------------------------------------------------------
  283.     Function ServeCommonJavaScript()
  284.     %>
  285.         <script language="JavaScript" src="<%=m_VirtualRoot%>inc_global.js">
  286.         </script>
  287.         <script language="JavaScript">
  288.                 
  289.             // Init Function
  290.             function Init()
  291.             {
  292.                 EnableOK();
  293.                 EnableCancel();
  294.             }
  295.  
  296.             function ValidatePage() 
  297.             { 
  298.                 return true;    
  299.             }
  300.         
  301.             //sets the value of LangID of the selected language into the hidden variable.            
  302.             function SetData() 
  303.             {
  304.             }    
  305.     
  306.         </script>
  307.     <%
  308.     End Function
  309.     
  310.     '=====================================================================
  311.     ' Function name :    ChangeLanguage
  312.     ' Description    :    It executes the function Executetask() and sets the current
  313.     '                    language of serverappliance to the userselected language
  314.     ' Input Values    :    None.
  315.     ' Return Values    :    True on sucessfull change of language, False on error (and error msg
  316.     '                    will be set by SetErrMsg)
  317.     '    L_* (in)                Localized strings
  318.     '=====================================================================
  319.     Function  ChangeLanguage
  320.         On Error Resume Next
  321.         Err.Clear
  322.         DIM objTaskContext
  323.         DIM objSL
  324.         DIM rc
  325.     
  326.         ChangeLanguage = FALSE
  327.             
  328.         Set objTaskContext = Server.CreateObject("Taskctx.TaskContext")
  329.         If Err.Number <> 0 Then
  330.             SA_TraceOut SOURCE_FILE, "Create Taskctx.TaskContext failed: " + CStr(Hex(Err.Number))
  331.             Exit Function
  332.         End If
  333.  
  334.         Set objSL = Server.CreateObject("SetSystemLocale.SetSystemLocale")
  335.         If Err.Number <> 0 Then
  336.             SA_TraceOut SOURCE_FILE, "Create SetSystemLocal.SetSystemLocal failed: " + CStr(Hex(Err.Number))
  337.             Exit Function
  338.         End If
  339.                 
  340.         objTaskContext.SetParameter "LanguageID", strSelectedLangID
  341.         Err.Clear
  342.  
  343.         rc = SA_ExecuteTask("ChangeLanguage", FALSE, objTaskContext)
  344.         If ( rc <> SA_NO_ERROR ) Then
  345.             SA_TraceOut SOURCE_FILE, "objAS.ExecuteTask failed"
  346.             Exit Function
  347.         End If
  348.         
  349.         Err.Clear
  350.         
  351.         objSL.SetLocale strSelectedLangID
  352.         If ( Err.Number <> 0 ) Then
  353.             SA_TraceOut SOURCE_FILE, "objSL.SetLocal failed"  + CStr(Hex(Err.Number))
  354.             Exit Function
  355.         End If
  356.         
  357.     
  358.         ChangeLanguage = TRUE
  359.         
  360.         Err.Clear
  361.         Set objTaskContext = Nothing
  362.         Set objSL = Nothing
  363.         
  364.     End Function
  365.                 
  366. %>
  367.